ํ๋ก๊ทธ๋ ์๋ธ ์คํธ๋ฆฌ๋ฐ๊ณผ ๋์ญํญ ์ธ์ ๋ก๋ฉ ๊ธฐ์ ๋ก ์ ์ธ๊ณ ํ๋ก ํธ์๋ ์ฑ๋ฅ์ ์ต์ ํํ์ธ์. ๋ค์ํ ๋คํธ์ํฌ ํ๊ฒฝ์์ ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ์ฐธ์ฌ๋๋ฅผ ๊ฐ์ ํฉ๋๋ค.
ํ๋ก ํธ์๋ ํ๋ก๊ทธ๋ ์๋ธ ์คํธ๋ฆฌ๋ฐ: ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํ ๋์ญํญ ์ธ์ ๋ก๋ฉ
์ค๋๋ ๊ณผ ๊ฐ์ด ์ํธ ์ฐ๊ฒฐ๋ ์ธ์์์ ์น์์์ ์ผ๊ด๋๊ฒ ์ฐ์ํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ธํฐ๋ท์ ๊ธ๋ก๋ฒํ ํน์ฑ์ ์ฃผ๋ก ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด์ผ๋ก ์ธํด ์๋นํ ์ด๋ ค์์ ์ผ๊ธฐํฉ๋๋ค. ๊ฐ๊ธฐ ๋ค๋ฅธ ์ง์ญ์ ์ฌ์ฉ์๋ค์ ํ์ ํ๊ฒ ๋ค๋ฅธ ๋์ญํญ ์ ํ, ์ง์ฐ ์๊ฐ, ์ฐ๊ฒฐ ์์ ์ฑ์ ๊ฒฝํํฉ๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ค์ ์น ์ฑ๋ฅ์ ์ต์ ํํ๊ณ ์์น์ ๊ด๊ณ์์ด ๋ชจ๋ ์ฌ๋์๊ฒ ์ํํ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ ์ํด ํ๋ก๊ทธ๋ ์๋ธ ์คํธ๋ฆฌ๋ฐ ๋ฐ ๋์ญํญ ์ธ์ ๋ก๋ฉ๊ณผ ๊ฐ์ ๊ธฐ์ ์ ์ ์ ๋ ์ฃผ๋ชฉํ๊ณ ์์ต๋๋ค.
๋์ญํญ ์ธ์ ๋ก๋ฉ์ ํ์์ฑ ์ดํด
์น ์ฝํ ์ธ ๋ฅผ ๋ก๋ฉํ๋ ์ ํต์ ์ธ ๋ฐฉ์์ ์ข ์ข ์ฌ์ฉ์์๊ฒ ๋ฌด์ธ๊ฐ๋ฅผ ๋ ๋๋งํ๊ธฐ ์ ์ ์ ์ฒด ํ์ด์ง๋ฅผ ๋ค์ด๋ก๋ํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด ๋ฐฉ์์ ๋น ๋ฅด๊ณ ์์ ์ ์ธ ์ธํฐ๋ท ์ฐ๊ฒฐ์ ๊ฐ์ง ์ฌ์ฉ์์๊ฒ๋ ์ ์๋ํ์ง๋ง, ๋์ญํญ์ด ์ ํ์ ์ด๊ฑฐ๋ ์ฐ๊ฒฐ์ด ๋ถ์์ ํ ์ฌ์ฉ์์๊ฒ๋ ๋ต๋ตํ ์ ๋๋ก ๋๋ฆฐ ๊ฒฝํ์ ์ด๋ํ ์ ์์ต๋๋ค. ์ํ๋ฆฌ์นด๋ ๋๋จ์์์ ์ผ๋ถ ์ง์ญ๊ณผ ๊ฐ์ด ๋ชจ๋ฐ์ผ ์ธํฐ๋ท ์ ์์ด ๋๋ฆฌ ๋ณด๊ธ๋ ์ง์ญ์ ์ฌ์ฉ์๋ค์ ์๊ฐํด ๋ณด์ญ์์ค. ์ด๊ณณ์์๋ ๋ฐ์ดํฐ ๋น์ฉ์ด ๋น์ธ๊ณ ์ฐ๊ฒฐ์ด ๋ถ์์ ํ ์ ์์ต๋๋ค. ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ํ๋ ํฌ๊ณ ๋จ์ผํ๋ ์น์ฌ์ดํธ๋ ์ด๋ฌํ ์๋๋ฆฌ์ค์์ ์ฌ์ฉ์ ๊ฒฝํ์ ํฌ๊ฒ ์ ํดํ ๊ฒ์ ๋๋ค.
๋์ญํญ ์ธ์ ๋ก๋ฉ์ ์ฌ์ฉ์์ ๋คํธ์ํฌ ์ํ์ ์ ์ํ๋ ์ฌ์ ์๋ฐฉ์ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. ์ด๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๋์ญํญ, ์ง์ฐ ์๊ฐ ๋ฐ ์ฐ๊ฒฐ ์ ํ์ ๋ฐ๋ผ ๋ฆฌ์์ค์ ์ฐ์ ์์๋ฅผ ์ ํ๊ณ ์ ๋ต์ ์ผ๋ก ๋ก๋ํ๋ ๊ธฐ์ ์ ํฌํจํฉ๋๋ค. ๋ชฉํ๋ ๋ชจ๋ ์ฝํ ์ธ ๊ฐ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ์ง ์๋๋ผ๋ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๊ธฐ๋ฅ์ ์ด๊ณ ๋งค๋ ฅ์ ์ธ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ์ ์ ์กฐํฉ์ ํตํด ๋ฌ์ฑ๋ฉ๋๋ค:
- ์ ์ง์ ๋ ๋๋ง: ํ์ ์ฝํ ์ธ (์คํฌ๋กค ์์ด ๋ณผ ์ ์๋ ๋ถ๋ถ)๋ฅผ ์ ์ํ๊ฒ ํ์ํ๊ณ ๋๋จธ์ง๋ฅผ ์ ์ง์ ์ผ๋ก ๋ก๋ํฉ๋๋ค.
- ์ง์ฐ ๋ก๋ฉ(Lazy Loading): ์ด๋ฏธ์ง ๋ฐ ๋น๋์ค์ ๊ฐ์ด ์ค์ํ์ง ์์ ๋ฆฌ์์ค์ ๋ก๋ฉ์ ํ์ํ ๋๊น์ง ์ง์ฐ์ํต๋๋ค.
- ๋ฆฌ์์ค ์ฐ์ ์์ ์ง์ : ์ค์๋์ ๋ฐ๋ผ ๋ฆฌ์์ค ๋ก๋ฉ ์์๋ฅผ ์ ํฉ๋๋ค.
- ์ ์ํ ์คํธ๋ฆฌ๋ฐ: ๋คํธ์ํฌ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค์ํ ๋ฒ์ ์ ๋ฆฌ์์ค(์: ์ด๋ฏธ์ง ๋ฐ ๋น๋์ค)๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฝ๋ ์คํ๋ฆฌํ : ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ๋ ์์ ์ฒญํฌ๋ก ๋๋๊ณ ํ์์ ๋ฐ๋ผ ๋ก๋ํฉ๋๋ค.
๋์ญํญ ์ธ์ ๋ก๋ฉ ๊ตฌํ์ ์ํ ํต์ฌ ๊ธฐ์
1. ์ด๋ฏธ์ง ์ต์ ํ ๋ฐ ๋ฐ์ํ ์ด๋ฏธ์ง
์ด๋ฏธ์ง๋ ์ข ์ข ์น ํ์ด์ง์์ ๋ค์ด๋ก๋ํ๋ ๋ฐ์ดํฐ์ ์๋น ๋ถ๋ถ์ ์ฐจ์งํฉ๋๋ค. ์ด๋ฏธ์ง๋ฅผ ์ต์ ํํ๋ ๊ฒ์ ์ฑ๋ฅ ํฅ์์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ์ด๋ฏธ์ง ์์ถ: TinyPNG, ImageOptim๊ณผ ๊ฐ์ ๋๊ตฌ๋ ์จ๋ผ์ธ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ํ์ง์ ํฐ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ์ด๋ฏธ์ง ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค. WebP์ ๊ฐ์ ๋ค๋ฅธ ์ด๋ฏธ์ง ํ์์ JPEG๋ PNG์ ๋นํด ๋ ๋์ ์์ถ๋ฅ ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ์ฌ๋ฐ๋ฅธ ํ์ ์ ํ: ์ด๋ฏธ์ง ๋ด์ฉ๊ณผ ๋ธ๋ผ์ฐ์ ์ง์์ ๊ธฐ๋ฐ์ผ๋ก ์ต์ ์ ์ด๋ฏธ์ง ํ์์ ์ ํํฉ๋๋ค. WebP๋ ์์ค ๋ฐ ๋ฌด์์ค ์ด๋ฏธ์ง ๋ชจ๋์ ๋ํด ํ์ํ ์์ถ๋ฅ ์ ์ ๊ณตํ๋ฉฐ ๋๋ฆฌ ์ง์๋ฉ๋๋ค.
- ๋ฐ์ํ ์ด๋ฏธ์ง:
<picture>์์์<img>ํ๊ทธ์srcset๋ฐsizes์์ฑ์ ์ฌ์ฉํ์ฌ ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ํด์๋์ ๋ง๋ ์ฌ๋ฌ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ฉ์์ ์ฅ์น์ ์ฐ๊ฒฐ ์ํ์ ๋ฐ๋ผ ๊ฐ์ฅ ์ ์ ํ ์ด๋ฏธ์ง๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
์์:
<picture>
<source srcset="image-small.webp 480w, image-medium.webp 800w, image-large.webp 1200w" sizes="(max-width: 480px) 100vw, (max-width: 800px) 50vw, 33vw" type="image/webp">
<img src="image-fallback.jpg" alt="Description of the image">
</picture>
2. ์ง์ฐ ๋ก๋ฉ(Lazy Loading)
์ง์ฐ ๋ก๋ฉ์ ๋ฆฌ์์ค๊ฐ ํ์ํ ๋๊น์ง ๋ก๋ฉ์ ์ฐ๊ธฐํฉ๋๋ค. ์ด๋ ํนํ ์คํฌ๋กค ์๋์ ์๋ ์ด๋ฏธ์ง, ๋น๋์ค ๋ฐ ๊ธฐํ ๋ฏธ๋์ด์ ํจ๊ณผ์ ์ ๋๋ค. ์ด์ ์ผ๋ก๋ ์ด๊ธฐ ํ์ด์ง ๋ก๋ ์๊ฐ ๋จ์ถ๊ณผ ๋์ญํญ ์๋น ๊ฐ์๊ฐ ์์ต๋๋ค.
๊ตฌํ ์ ๋ต:
- ๋ค์ดํฐ๋ธ ์ง์ฐ ๋ก๋ฉ: ์ต์ ๋ธ๋ผ์ฐ์ ๋
<img>๋ฐ<iframe>์์์loading="lazy"์์ฑ์ ์ฌ์ฉํ์ฌ ๋ค์ดํฐ๋ธ ์ง์ฐ ๋ก๋ฉ์ ์ง์ํฉ๋๋ค. - ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ: Lozad.js ๋๋ LazySizes์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ ๊ณ ๊ธ ๊ธฐ๋ฅ๊ณผ ๊ด๋ฒ์ํ ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ์ ๊ณตํฉ๋๋ค.
์์ (๋ค์ดํฐ๋ธ ์ง์ฐ ๋ก๋ฉ):
<img src="image.jpg" alt="Lazy Loaded Image" loading="lazy">
3. ์ฝ๋ ์คํ๋ฆฌํ ๋ฐ ๋ฒ๋ค๋ง
์ฝ๋ ์คํ๋ฆฌํ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋ ์๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์ฒญํฌ๋ก ๋๋์ด ํ์ํ ๋ ๋ก๋ํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ด๊ธฐ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ด๋ก๋๋ฅผ ์ค์ฌ ํ์ด์ง ๋ก๋ ์๊ฐ์ ๋จ์ถ์ํต๋๋ค. Webpack, Parcel, Rollup๊ณผ ๊ฐ์ ๋ฒ๋ค๋ง ๋๊ตฌ๊ฐ ์ฝ๋ ์คํ๋ฆฌํ ์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์ฝ๋ ์คํ๋ฆฌํ ์ ๊ทผ ๋ฐฉ์:
- ๋ผ์ฐํธ ๊ธฐ๋ฐ ์คํ๋ฆฌํ : ์ฌ์ฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ๋ผ์ฐํธ๋ก ์ด๋ํ๋ ๊ฒ์ ๋ฐ๋ผ ์ฝ๋ ์ฒญํฌ๋ฅผ ๋ก๋ํฉ๋๋ค.
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์คํ๋ฆฌํ : ํน์ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋ ๋๋ง ํด๋น ์ฝ๋ ์ฒญํฌ๋ฅผ ๋ก๋ํฉ๋๋ค.
- ๋์ ๊ฐ์ ธ์ค๊ธฐ(Dynamic Imports):
import()๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ชจ๋์ ๋น๋๊ธฐ์ ์ผ๋ก ๋ก๋ํฉ๋๋ค.
์์ (๋์ ๊ฐ์ ธ์ค๊ธฐ):
async function loadComponent() {
const { MyComponent } = await import('./MyComponent');
// Render MyComponent
}
4. ์ค์ ๋ฆฌ์์ค ์ฐ์ ์์ ์ง์
ํ์ ๋ฆฌ์์ค์ ์ฐ์ ์์๋ฅผ ์ ํ๋ ๊ฒ์ ๊ฐ๋ฅํ ๊ฐ์ฅ ๋น ๋ฅธ ์ด๊ธฐ ํ์ด์ง ๋ก๋๋ฅผ ๋ณด์ฅํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์คํฌ๋กค ์์ด ๋ณผ ์ ์๋ ์ฝํ ์ธ ๋ฅผ ๋ ๋๋งํ๋ ๋ฐ ํ์ํ ๋ฆฌ์์ค๋ฅผ ์๋ณํ๊ณ ๋ ๋์ ์ฐ์ ์์๋ก ๋ก๋ํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค.
์ฐ์ ์์ ์ง์ ์ ์ํ ๊ธฐ์ :
- Preload:
<link rel="preload">ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ์ ์ค์ ๋ฆฌ์์ค๋ฅผ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๋ก๋ํ๋๋ก ์ง์ํฉ๋๋ค. ์ด๋ ํนํ ๊ธ๊ผด๊ณผ CSS ํ์ผ์ ์ ์ฉํฉ๋๋ค. - Prefetch:
<link rel="prefetch">ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํฅํ ํ์์ ํ์ํ ์ ์๋ ๋ฆฌ์์ค๋ฅผ ๋ก๋ํฉ๋๋ค. - ๋ฆฌ์์ค ํํธ:
dns-prefetch,preconnect,prerender์ ๊ฐ์ ๋ฆฌ์์ค ํํธ๋ฅผ ์ฌ์ฉํ์ฌ DNS ํ์ธ, ์ฐ๊ฒฐ ์ค์ ๋ฐ ํ์ด์ง ๋ ๋๋ง์ ์ต์ ํํฉ๋๋ค.
์์ (Preload):
<link rel="preload" href="/styles.css" as="style">
<link rel="preload" href="/font.woff2" as="font" type="font/woff2" crossorigin>
5. ๋น๋์ค ๋ฐ ์ค๋์ค๋ฅผ ์ํ ์ ์ํ ์คํธ๋ฆฌ๋ฐ
๋น๋์ค ๋ฐ ์ค๋์ค ์ฝํ ์ธ ๋ฅผ ์คํธ๋ฆฌ๋ฐํ ๋๋ ์ ์ํ ์คํธ๋ฆฌ๋ฐ ๊ธฐ์ ์ด ํ์์ ์ ๋๋ค. ์ด ๊ธฐ์ ์ ์ฌ์ฉ์์ ๋คํธ์ํฌ ์ํ์ ๋ฐ๋ผ ๋ค์ํ ๋ฒ์ ์ ๋ฏธ๋์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํต์ฌ ๊ธฐ์ :
- HTTP Live Streaming (HLS): ์ ์ํ ๋น๋์ค ์คํธ๋ฆฌ๋ฐ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ ๋๋ค.
- Dynamic Adaptive Streaming over HTTP (DASH): ๋ ๋ค๋ฅธ ์ธ๊ธฐ ์๋ ์ ์ํ ์คํธ๋ฆฌ๋ฐ ํ๋กํ ์ฝ์ ๋๋ค.
์ด ํ๋กํ ์ฝ๋ค์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋์ญํญ์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๋ค๋ฅธ ํ์ง ์์ค์ผ๋ก ์ ํํ์ฌ ๋ณ๋์ด ์ฌํ ๋คํธ์ํฌ์์๋ ๋ถ๋๋ฌ์ด ์ฌ์ ๊ฒฝํ์ ๋ณด์ฅํฉ๋๋ค. YouTube๋ Netflix์ ๊ฐ์ ์๋น์ค๋ ์ ์ํ ์คํธ๋ฆฌ๋ฐ์ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉํฉ๋๋ค.
6. ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ(CDN)
CDN์ ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๊น์ด ๊ณณ์ ์ฝํ ์ธ ๋ฅผ ์บ์ํ๋ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ์๋ฒ ๋คํธ์ํฌ์ ๋๋ค. CDN์ ์ฌ์ฉํ๋ฉด ํนํ ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ ๋ ์ง์ฐ ์๊ฐ์ ํฌ๊ฒ ์ค์ด๊ณ ์ ๋ฐ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. CDN์ ์ฌ์ฉ์๋ฅผ ์์ ์ ์์น์์ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฒ๋ก ์๋์ผ๋ก ๋ผ์ฐํ ํ์ฌ ๋ ๋น ๋ฅธ ์ฝํ ์ธ ์ ์ก์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
CDN ์ฌ์ฉ์ ์ด์ :
- ์ง์ฐ ์๊ฐ ๊ฐ์: ์ฌ์ฉ์์ ๋ ๊ฐ๊น์ด ์๋ฒ์์ ์ฝํ ์ธ ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
- ์ฑ๋ฅ ํฅ์: ๋ ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ๊ณผ ๋ ๋์ ๋ฐ์์ฑ.
- ์์ ์ฑ ์ฆ๊ฐ: CDN ์๋ฒ๋ ๋๊ท๋ชจ ํธ๋ํฝ ๊ธ์ฆ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ๊ธ๋ก๋ฒ ๋๋ฌ ๋ฒ์: ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ์ฝํ ์ธ ๊ฐ ๋ฐฐํฌ๋ฉ๋๋ค.
์ฑ๋ฅ ์ธก์ ๋ฐ ๋ชจ๋ํฐ๋ง
์ด๋ฌํ ๊ธฐ์ ์ ๊ตฌํํ๋ ๊ฒ์ ์ฒซ ๋จ๊ณ์ ๋ถ๊ณผํฉ๋๋ค. ์ต์ ํ๊ฐ ํจ๊ณผ์ ์ด๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ด ๊ฐ์ ๋๊ณ ์๋์ง ํ์ธํ๊ธฐ ์ํด ์น์ฌ์ดํธ ์ฑ๋ฅ์ ์ง์์ ์ผ๋ก ์ธก์ ํ๊ณ ๋ชจ๋ํฐ๋งํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ์น ์ฑ๋ฅ ๋๊ตฌ ์ฌ์ฉ: Google PageSpeed Insights, WebPageTest, Lighthouse์ ๊ฐ์ ๋๊ตฌ๋ ์์ธํ ์ฑ๋ฅ ๋ถ์์ ์ ๊ณตํ๊ณ ๊ฐ์ ์์ญ์ ์๋ณํฉ๋๋ค.
- ์ฝ์ด ์น ๋ฐ์ดํ ๋ชจ๋ํฐ๋ง: ์ต๋ ์ฝํ ์ธ ํ ํ์ธํธ(LCP), ์ต์ด ์ ๋ ฅ ์ง์ฐ(FID), ๋์ ๋ ์ด์์ ์ด๋(CLS)๊ณผ ๊ฐ์ ํต์ฌ ์งํ๋ฅผ ์ถ์ ํ์ฌ ์ฌ์ฉ์ ๊ฒฝํ์ ํ๊ฐํฉ๋๋ค.
- ์ค์ ์ฌ์ฉ์ ๋ชจ๋ํฐ๋ง(RUM): ์ค์ ์ฌ์ฉ์๋ก๋ถํฐ ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ ์์งํ์ฌ ๋ค์ํ ์ฅ์น์ ๋คํธ์ํฌ์์ ์น์ฌ์ดํธ๋ฅผ ์ด๋ป๊ฒ ๊ฒฝํํ๋์ง ์ดํดํฉ๋๋ค.
- A/B ํ ์คํธ: A/B ํ ์คํธ๋ฅผ ์ํํ์ฌ ๋ค์ํ ์ต์ ํ ๊ธฐ์ ์ ์ฑ๋ฅ์ ๋น๊ตํฉ๋๋ค.
๊ธ๋ก๋ฒ ๊ณ ๋ ค ์ฌํญ ๋ฐ ๋ฌธํ์ ๋์์ค
๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํด ์ต์ ํํ ๋ ๋ฌธํ์ ๋์์ค์ ์ง์ญ์ ์ฐจ์ด๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ํ์งํ: ๋์ ๊ณ ๊ฐ์ ์ธ์ด์ ๋ฌธํ์ ๋ง๊ฒ ์น์ฌ์ดํธ์ ์ฝํ ์ธ ์ ๋์์ธ์ ์กฐ์ ํฉ๋๋ค.
- ์ ๊ทผ์ฑ: WCAG ๊ฐ์ด๋๋ผ์ธ์ ๋ฐ๋ผ ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ์ ๊ทผํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ์ฝํ ์ธ ๊ด๋ จ์ฑ: ์ฝํ ์ธ ๊ฐ ๋์ ๊ณ ๊ฐ์๊ฒ ๊ด๋ จ์ฑ ์๊ณ ์ ์ ํ์ง ํ์ธํฉ๋๋ค.
- ์๋ฒ ์์น: ๋ค๋ฅธ ์ง์ญ์ ์ฌ์ฉ์๋ฅผ ์ํด ์ง์ฐ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด ์ ๋ต์ ์ผ๋ก ์๋ฒ ์์น๋ฅผ ์ ํํฉ๋๋ค. AWS, Google Cloud, Azure์ ๊ฐ์ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๋ ๊ด๋ฒ์ํ ๊ธ๋ก๋ฒ ์๋ฒ ์์น๋ฅผ ์ ๊ณตํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ํน์ ์ง์ญ์ ๋๋ฆฐ ์ธํฐ๋ท ์๋๊ฐ ๋ฏธ์น๋ ์ํฅ์ ๊ณ ๋ คํด ๋ณด์ญ์์ค. ์ด๋ฏธ์ง๋ ์ ์คํ๊ฒ ์ต์ ํํด์ผ ํ๋ฉฐ ์ฝํ ์ธ ์ ์ฐ์ ์์๋ฅผ ์ ํด์ผ ํฉ๋๋ค. ์ผ๋ถ ๋ฌธํ๊ถ์์๋ ์ ๊ตํ ๋์์ธ๋ณด๋ค ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ์ด ๋ ์ค์ํ ์ ์์ต๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ์คํ ๊ฐ๋ฅํ ํต์ฐฐ๋ ฅ
๋ค์์ ๋์ญํญ ์ธ์ ๋ก๋ฉ์ ๊ตฌํํ๊ณ ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํ ํ๋ก ํธ์๋ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก์ ์คํ ๊ฐ๋ฅํ ํต์ฐฐ๋ ฅ์ ๋๋ค:
- ์น์ฌ์ดํธ ๊ฐ์ฌ: ์ฑ๋ฅ ํ ์คํธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ์์ญ์ ์๋ณํฉ๋๋ค.
- ์ด๋ฏธ์ง ์ต์ ํ: ์ด๋ฏธ์ง๋ฅผ ์์ถํ๊ณ , ์ฌ๋ฐ๋ฅธ ํ์์ ์ ํํ๋ฉฐ, ๋ฐ์ํ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ง์ฐ ๋ก๋ฉ ๊ตฌํ: ์ด๋ฏธ์ง, ๋น๋์ค ๋ฐ ๊ธฐํ ์ค์ํ์ง ์์ ๋ฆฌ์์ค๋ฅผ ์ง์ฐ ๋ก๋ฉํฉ๋๋ค.
- ์ฝ๋ ์คํ๋ฆฌํ : ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋ ์์ ์ฒญํฌ๋ก ๋๋๊ณ ํ์์ ๋ฐ๋ผ ๋ก๋ํฉ๋๋ค.
- ์ค์ ๋ฆฌ์์ค ์ฐ์ ์์ ์ง์ : preload, prefetch ๋ฐ ๋ฆฌ์์ค ํํธ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ ๋ฆฌ์์ค๋ฅผ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๋ก๋ํฉ๋๋ค.
- CDN ์ฌ์ฉ: ๊ธ๋ก๋ฒ ์๋ฒ ๋คํธ์ํฌ๋ฅผ ํตํด ์ฝํ ์ธ ๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
- ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง: PageSpeed Insights ๋ฐ RUM๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์น์ฌ์ดํธ์ ์ฑ๋ฅ์ ์ง์์ ์ผ๋ก ์ธก์ ํ๊ณ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
- ์ค์ ์ฅ์น ๋ฐ ๋คํธ์ํฌ์์ ํ ์คํธ: ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด๊ณผ ์ฅ์น ์ ํ์ ์๋ฎฌ๋ ์ด์ ํ์ฌ ์ผ๊ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํฉ๋๋ค. Chrome DevTools์ ์ค๋กํ๋ง ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ ์ง์ ํฅ์ ์์ฉ: ์๋ฐ์คํฌ๋ฆฝํธ๋ CSS๊ฐ ์๋ ํ๊ฒฝ์์๋ ์ ์๋ํ๋ ํต์ฌ ๊ธฐ๋ฅ์ ๊ฒฌ๊ณ ํ ๊ธฐ๋ฐ ์์ ์น์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ ๋ค์, ๋ ์ ๋ฅํ ์ฅ์น์ ๋น ๋ฅธ ์ฐ๊ฒฐ์ ๊ฐ์ง ์ฌ์ฉ์๋ฅผ ์ํด ๊ฒฝํ์ ์ ์ง์ ์ผ๋ก ํฅ์์ํต๋๋ค.
- ์ต์ ์ ๋ณด ์ ์ง: ์ต์ ์น ์ฑ๋ฅ ๋ชจ๋ฒ ์ฌ๋ก์ ๊ธฐ์ ์ ๋ํ ์ ๋ณด๋ฅผ ๊ณ์ ์ ํฉ๋๋ค. ์น ๊ฐ๋ฐ ํ๊ฒฝ์ ๋์์์ด ์งํํ๊ณ ์์ต๋๋ค.
๊ฒฐ๋ก
ํ๋ก ํธ์๋ ํ๋ก๊ทธ๋ ์๋ธ ์คํธ๋ฆฌ๋ฐ๊ณผ ๋์ญํญ ์ธ์ ๋ก๋ฉ์ ๋ ์ด์ ์ ํ ์ฌํญ์ด ์๋๋๋ค. ์ด๋ ๊ธ๋ก๋ฒํ๋ ์ธ๊ณ์์ ์ฑ๊ณต์ ์ธ ์น์ฌ์ดํธ๋ฅผ ๋ง๋๋ ๋ฐ ํ์์ ์ ๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ ์์ฉํ๊ณ ์น์ฌ์ดํธ์ ์ฑ๋ฅ์ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ ๊ฐ์ ํจ์ผ๋ก์จ, ์์น๋ ์ธํฐ๋ท ์ฐ๊ฒฐ์ ๊ด๊ณ์์ด ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๋ ๋น ๋ฅด๊ณ , ๋ ๋งค๋ ฅ์ ์ด๋ฉฐ, ๋ ์ ๊ทผํ๊ธฐ ์ฌ์ด ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ฌ์ ์๋ฐฉ์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ํฅ์์ํฌ ๋ฟ๋ง ์๋๋ผ ์ฐธ์ฌ๋, ์ ํ์จ ๋ฐ ์ ๋ฐ์ ์ธ ๋น์ฆ๋์ค ์ฑ๊ณต์ ๊ธฐ์ฌํ ๊ฒ์ ๋๋ค.
์ ์ธ๊ณ์ ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด์ ์ดํดํ๊ณ ์ด ๊ฐ์ด๋์์ ์ค๋ช ํ ๊ธฐ์ ์ ๊ตฌํํจ์ผ๋ก์จ, ๋ชจ๋ ์ฌ๋์๊ฒ ํ์ํ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ์ง์ ํ ๊ธ๋ก๋ฒ ์น ๊ฒฝํ์ ๋ง๋ค ์ ์์ต๋๋ค.